import os
from datetime import datetime
from typing import List


def get_old_files(directory: str, keep_count: int = 5) -> List[str]:
    """
    获取指定目录下除了最新的N个文件之外的所有文件路径
    
    Args:
        directory: 要扫描的目录路径
        keep_count: 要保留的最新文件数量，默认为5
        
    Returns:
        除了最新的N个文件之外的所有文件路径列表
    """
    # 获取目录下所有文件
    files = []
    for file in os.listdir(directory):
        file_path = os.path.join(directory, file)
        if os.path.isfile(file_path):
            # 获取文件的修改时间
            mod_time = os.path.getmtime(file_path)
            files.append((file_path, mod_time))

    # 按修改时间排序
    files.sort(key=lambda x: x[1], reverse=True)

    # 返回除了最新的N个文件之外的所有文件路径
    return [file[0] for file in files[keep_count:]]


def main():
    # 测试目录路径
    test_dir = r"D:\家宽\影响用户明细"

    # 获取旧文件列表
    old_files = get_old_files(test_dir, keep_count=3)

    for file in old_files:
        print(f"- {file}")


if __name__ == "__main__":
    main()
